package com.py.credit.entity.enums;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.py.credit.entity.common.OptionalColumn;

public enum ModifyLogEnum {
	mainName("mainName", "主体名称", "varchar", "input", true, true, new HashMap<String, String>(), true,
			true),
	tablename("tablename", "修正资源目录信息", "varchar", "input", true, true, new HashMap<String, String>(), true,
			true),bm("bm", "主体编码", "varchar", "input", true, true, new HashMap<String, String>(), true,
									true),cjsj("cjsj", "申请时间", "timestamp", "input", true, true, new HashMap<String, String>(), false,
									true),mainType("mainType", "主体类型", "varchar", "select", true, true, new HashMap<String, String>(){
										
										/**
										 * 
										 */
										private static final long serialVersionUID = 1L;

										{
											put("100000", "法人库");
											put("100001", "自然人库");
											put("100002", "非企业法人库");
										}
									}
											, false,
											true),zxcz("zxcz", "执行操作", "varchar", "select", true, true, new HashMap<String, String>(){
												private static final long serialVersionUID = 1L;
												{
													put("I", "添加");
													put("U", "编辑");
													put("D", "删除");
												}
											}, false,true),shsj("shsj", "审核时间", "timestamp", "input", true, true, new HashMap<String, String>(), false,
																	true), shzt("shzt", "审核状态",
									"varchar", "select", true, true,
									new HashMap<String, String>(){
								private static final long serialVersionUID = 1L;
								{
									put("1", "已审核");
									put("2", "未审核");
								}
						
					}, false, true);

	private String colNameEN;
	private String colNameCN;
	private String type;
	private boolean defaultShow;
	private String widget;
	private boolean fuzzy;
	private HashMap<String, String> widgetValue;
	private boolean searchIsShow;
	private boolean advanceConditionShow;
	
	
	private ModifyLogEnum(String colNameEN, String colNameCN, String type, String widget,boolean defaultShow,
			boolean fuzzy, HashMap<String, String> widgetValue, boolean searchIsShow, boolean advanceConditionShow) {
		this.colNameEN = colNameEN;
		this.colNameCN = colNameCN;
		this.type = type;
		this.defaultShow = defaultShow;
		this.widget = widget;
		this.fuzzy = fuzzy;
		this.widgetValue = widgetValue;
		this.searchIsShow = searchIsShow;
		this.advanceConditionShow = advanceConditionShow;
	}
	public String getColNameEN() {
		return colNameEN;
	}
	public void setColNameEN(String colNameEN) {
		this.colNameEN = colNameEN;
	}
	public String getColNameCN() {
		return colNameCN;
	}
	public void setColNameCN(String colNameCN) {
		this.colNameCN = colNameCN;
	}
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	public boolean isDefaultShow() {
		return defaultShow;
	}
	public void setDefaultShow(boolean defaultShow) {
		this.defaultShow = defaultShow;
	}
	public String getWidget() {
		return widget;
	}
	public void setWidget(String widget) {
		this.widget = widget;
	}
	public boolean isFuzzy() {
		return fuzzy;
	}
	public void setFuzzy(boolean fuzzy) {
		this.fuzzy = fuzzy;
	}
	public HashMap<String, String> getWidgetValue() {
		return widgetValue;
	}
	public void setWidgetValue(HashMap<String, String> widgetValue) {
		this.widgetValue = widgetValue;
	}
	public boolean isSearchIsShow() {
		return searchIsShow;
	}
	public void setSearchIsShow(boolean searchIsShow) {
		this.searchIsShow = searchIsShow;
	}
	public boolean isAdvanceConditionShow() {
		return advanceConditionShow;
	}
	public void setAdvanceConditionShow(boolean advanceConditionShow) {
		this.advanceConditionShow = advanceConditionShow;
	}
	
	public static List<OptionalColumn> getOptionalColumns() {

		List<OptionalColumn> OptionalColumns = new ArrayList<OptionalColumn>();
		ModifyLogEnum[] values = ModifyLogEnum.values();
		for (ModifyLogEnum value : values) {
			if(value.isDefaultShow()) {
				OptionalColumn optionalColumn = new OptionalColumn(value.getColNameEN(), value.getColNameCN(),
						value.getType(), value.isDefaultShow(), value.getWidget(), value.isFuzzy(), value.getWidgetValue(),
						value.isSearchIsShow());
				OptionalColumns.add(optionalColumn);	
			}
		}
		return OptionalColumns;
	}

	public static List<String> getDefaultShowColumnEN() {
		List<String> columns = new ArrayList<String>();
		ModifyLogEnum[] values = ModifyLogEnum.values();
		for (ModifyLogEnum value : values) {
			if (value.isDefaultShow()) {
				columns.add(value.getColNameEN());
			}
		}
		return columns;
	}

	public static List<OptionalColumn> getAdvancedConditionColumns() {
		List<OptionalColumn> OptionalColumns = new ArrayList<OptionalColumn>();
		ModifyLogEnum[] values = ModifyLogEnum.values();
		for (ModifyLogEnum value : values) {
			if (value.isAdvanceConditionShow()) {
				OptionalColumn optionalColumn = new OptionalColumn(value.getColNameEN(), value.getColNameCN(),
						value.getType(), value.isDefaultShow(), value.getWidget(), value.isFuzzy(),
						value.getWidgetValue(), value.isSearchIsShow());
				OptionalColumns.add(optionalColumn);
			}
		}
		return OptionalColumns;
	}
}
